package com.andkrup.easygame.externalmodules {

	/**
	 * @author Andkrup
	 */
	public interface IExternalModuleFactory {
		/**
		 * An ExternalModule can contain extra functionality that adds to the Core
		 * application (gameengine). As such, the Core application cannot know
		 * in advance the names of the methods or the definitions needed. We need
		 * to access the module itself and work with the modules own interface.
		 * 
		 * When this method is used it is because we want to access the additional
		 * functionality that the ExternalModule gives. Because of this, we need
		 * the Integrator to pass on any data that the ExternalModule needs before
		 * it is returned.
		 */
		function getModuleByName(name:String):ExternalModule;
	}
}
